package com.ruoyi.report_wjjhl.domain.vo;

import java.math.BigDecimal;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import com.ruoyi.common.utils.BigDecimalUtil;
import com.ruoyi.report_tg.domain.vo.ExcelGeneralVo;
import lombok.Data;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;


/**
 * 无机结合料稳定材料配合比设计试验检测报告视图对象 report_wjjhl_wdclphbsj_bs_info
 *
 * @author zyb
 * @date 2024-08-21
 */
@Data
@ExcelIgnoreUnannotated
public class WdclphbsjBsInfoVo extends ExcelGeneralVo {

    private static final long serialVersionUID = 1L;

    /**
     * 一份excel表格的唯一id(其他的excel主表，都应有此字段）
     */
    @ExcelProperty(value = "一份excel表格的唯一id(其他的excel主表，都应有此字段）")
    private Long excelId;

    /**
     * 共几页
     */
    @ExcelProperty(value = "共几页")
    private Long totalPage;

    /**
     * 第几页
     */
    @ExcelProperty(value = "第几页")
    private Long page;

    /**
     * 报告编号
     */
    @ExcelProperty(value = "报告编号")
    private String baogbh;

    /**
     * 检测单位名称
     */
    @ExcelProperty(value = "检测单位名称")
    private String jiancdwmc;

    /**
     * 工程部位/用途
     */
    @ExcelProperty(value = "工程部位/用途")
    private String gongcbwyt;

    /**
     * 样品名称
     */
    @ExcelProperty(value = "样品名称")
    private String yangpmc;

    /**
     * 样品编号
     */
    @ExcelProperty(value = "样品编号")
    private String yangpbh;

    /**
     * 样品数量
     */
    @ExcelProperty(value = "样品数量")
    private String yangpsl;

    /**
     * 样品状态
     */
    @ExcelProperty(value = "样品状态")
    private String yangpzt;

    /**
     * 样品时间
     */
    @ExcelProperty(value = "样品时间")
    private String yangpsj;

    /**
     * 检测日期
     */
    @ExcelProperty(value = "检测日期")
    private String jiancrq;

    /**
     * 试验条件温度
     */
    @ExcelProperty(value = "试验条件温度")
    private String shiytjwd;

    /**
     * 试验条件湿度
     */
    @ExcelProperty(value = "试验条件湿度")
    private String shiytjsd;

    /**
     * 检测依据
     */
    @ExcelProperty(value = "检测依据")
    private String jiancyj;

    /**
     * 判定依据
     */
    @ExcelProperty(value = "判定依据")
    private String pandyj;

    /**
     * 主要仪器设备名称及编号
     */
    @ExcelProperty(value = "主要仪器设备名称及编号")
    private String zhuyyqsbmcjbh;

    /**
     * 取样位置
     */
    @ExcelProperty(value = "取样位置")
    private String quywz;

    /**
     * 委托/任务编号
     */
    @ExcelProperty(value = "委托/任务编号")
    private String weitrwbh;

    /**
     * 土样产地
     */
    @ExcelProperty(value = "土样产地")
    private String tuycd;

    /**
     * 代表数量
     */
    @ExcelProperty(value = "代表数量")
    private String daibsl;

    /**
     * 附加声明
     */
    @ExcelProperty(value = "附加声明")
    private String fujsm;

    /**
     * 检测结论
     */
    @ExcelProperty(value = "检测结论")
    private String jiancjl;

    /**
     * 施工委托单位
     */
    @ExcelProperty(value = "施工委托单位")
    private String shigwtdw;

    /**
     * 工程名称
     */
    @ExcelProperty(value = "工程名称")
    private String gongcmc;

    /**
     * 设备id逗号分隔
     */
    @ExcelProperty(value = "设备id逗号分隔")
    private String shebIds;

    /**
     * 标识该表是报告
     */
    @ExcelProperty(value = "标识该表是报告")
    private String bgFlag;

    /**
     * 检测依据ids
     */
    @ExcelProperty(value = "检测依据ids")
    private String jiancyjIds;

    /**
     * 判定依据ids
     */
    @ExcelProperty(value = "判定依据ids")
    private String pandyjIds;

    /**
     * 矿料名称1
     */
    @ExcelProperty(value = "矿料名称1")
    private String kuanglmc1;

    /**
     * 矿料名称2
     */
    @ExcelProperty(value = "矿料名称2")
    private String kuanglmc2;

    /**
     * 矿料名称3
     */
    @ExcelProperty(value = "矿料名称3")
    private String kuanglmc3;

    /**
     * 矿料名称4
     */
    @ExcelProperty(value = "矿料名称4")
    private String kuanglmc4;

    /**
     * 矿料名称5
     */
    @ExcelProperty(value = "矿料名称5")
    private String kuanglmc5;

    /**
     * 矿料名称6
     */
    @ExcelProperty(value = "矿料名称6")
    private String kuanglmc6;

    /**
     * 矿料名称7
     */
    @ExcelProperty(value = "矿料名称7")
    private String kuanglmc7;

    /**
     * 矿料名称8
     */
    @ExcelProperty(value = "矿料名称8")
    private String kuanglmc8;

    /**
     * 矿料比例1
     */
    @ExcelProperty(value = "矿料比例1")
    private Long kuanglbl1;

    /**
     * 矿料比例2
     */
    @ExcelProperty(value = "矿料比例2")
    private Long kuanglbl2;

    /**
     * 矿料比例3
     */
    @ExcelProperty(value = "矿料比例3")
    private Long kuanglbl3;

    /**
     * 矿料比例4
     */
    @ExcelProperty(value = "矿料比例4")
    private Long kuanglbl4;

    /**
     * 矿料比例5
     */
    @ExcelProperty(value = "矿料比例5")
    private Long kuanglbl5;

    /**
     * 矿料比例6
     */
    @ExcelProperty(value = "矿料比例6")
    private Long kuanglbl6;

    /**
     * 矿料比例7
     */
    @ExcelProperty(value = "矿料比例7")
    private Long kuanglbl7;

    /**
     * 矿料比例8
     */
    @ExcelProperty(value = "矿料比例8")
    private Long kuanglbl8;

    /**
     * 水泥剂量
     */
    @ExcelProperty(value = "水泥剂量")
    private BigDecimal shuinjl;

    /**
     * 最佳含水率
     */
    @ExcelProperty(value = "最佳含水率")
    private BigDecimal zuijhsl;

    /**
     * 最大干密度
     */
    @ExcelProperty(value = "最大干密度")
    private BigDecimal zuidgmd;

    /**
     * 施工控制压实度
     */
    @ExcelProperty(value = "施工控制压实度")
    private BigDecimal shigkzysd;

    /**
     * 检测类别
     */
    private String jianclb;

    public void setShuinjl(BigDecimal shuinjl) {
        this.shuinjl = BigDecimalUtil.stpTrailZero(shuinjl);
    }

    public void setZuijhsl(BigDecimal zuijhsl) {
        this.zuijhsl = BigDecimalUtil.stpTrailZero(zuijhsl);
    }

    public void setZuidgmd(BigDecimal zuidgmd) {
        this.zuidgmd = BigDecimalUtil.stpTrailZero(zuidgmd);
    }

    public void setShigkzysd(BigDecimal shigkzysd) {
        this.shigkzysd = BigDecimalUtil.stpTrailZero(shigkzysd);
    }

    /**
     * 详细表A
     */
    List<CjlkljpsyBaDetailVo> baDetailVosA;

    /**
     * 详细表B
     */
    List<WdclphbsjBaDetailBVo> baDetailVosB;

    /**
     * 详细表C
     */
    List<WdclphbsjBaDetailCVo> baDetailVosC;

    public WdclphbsjBsInfoVo() {
        // 默认 16次
        long size = 16L;
        baDetailVosA = new ArrayList<>((int) size);
        for (long i = 1; i <= size; i++) {
            baDetailVosA.add(new CjlkljpsyBaDetailVo());
        }
        //  默认 3次
        long sizeB = 3L;
        baDetailVosB = new ArrayList<>((int) sizeB);
        for (long i = 1; i <= sizeB; i++) {
            baDetailVosB.add(new WdclphbsjBaDetailBVo());
        }

        // 默认 6次
        long sizeC = 6L;
        baDetailVosC = new ArrayList<>((int) sizeC);
        for (long i = 1; i <= sizeC; i++) {
            baDetailVosC.add(new WdclphbsjBaDetailCVo());
        }
    }
}
